home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_perl.idb / usr / freeware / lib / perl5 / 5.00502 / linkop.z / linkop
Encoding:
Text File  |  1998-10-28  |  2.8 KB  |  112 lines

  1. #!/bin/sh
  2. #
  3. # this script relinks the default perl links after each installation
  4. # it doesn't need to be chroot-ed as it knows about $rbase in the miniroot
  5. #
  6. cd $rbase/usr/freeware/bin
  7.  
  8. PERL=perl5.00502
  9.  
  10. # remove old $PERL
  11. if [ -l $PERL ] ; then
  12.     /sbin/rm -f $PERL
  13. fi
  14. if [ -f $PERL ] ; then
  15.     for perl in $PERL-n32 $PERL-o32 $PERL-n64 thr$PERL-n32 thr$PERL-n64 ; do
  16.         if test -x $perl ; then
  17.             if /usr/bin/cmp $PERL $perl ; then
  18.                 /sbin/rm -f $PERL
  19.                 break
  20.             fi
  21.         fi
  22.     done
  23. fi
  24. if [ -f $PERL ] ; then
  25.     echo Strange version of /usr/freeware/bin/$PERL exists, moving aside
  26.     /sbin/mv $PERL $PERL-old
  27. fi
  28.  
  29. # now make the link for the default $PERL, since "perl" links to it
  30.  
  31. for perl in $PERL-n32 $PERL-o32 $PERL-n64 thr$PERL-n32 thr$PERL-n64 ; do
  32.     if [ -x $perl ] ; then
  33.         /sbin/ln -s $perl $PERL
  34.         break;
  35.     fi
  36. done
  37.  
  38. # make link for thrperl
  39. # first remove any existing one -- just stomp on it.
  40. rm -f thrperl
  41. for tperl in thr$PERL-n64 thr$PERL-n32; do
  42.     if [ -x $tperl ] ; then
  43.         /sbin/ln -s $tperl thrperl
  44.         break
  45.     fi
  46. done
  47.  
  48. # conditionally make link for operl (the o32 perl)
  49. # first remove any existing one -- just stomp it
  50. rm -f operl
  51. if [ -x $PERL-o32 ] ; then
  52.     /sbin/ln -s $PERL-o32 operl
  53. fi
  54.  
  55. # conditionally make a link for perl64
  56. # first remove any existing one -- just stomp it
  57. rm -f perl64
  58. for p64 in $PERL-n64 thr$PERL-n64; do
  59.     if [ -x $p64 ] ; then
  60.         /sbin/ln -s $p64 perl64
  61.         break
  62.     fi
  63. done
  64.  
  65. # Make the site_perl arch directories
  66. for perl in $PERL-n32 $PERL-o32 $PERL-n64 thr$PERL-n32 thr$PERL-n64 ; do
  67.     if test -x $perl ; then
  68.         spadir=`chroot $rbase/ /usr/freeware/bin/$perl -MConfig -e 'print $Config{"installsitearch"};'`
  69.         if [ ! -d $rbase/$spadir ] ; then
  70.             /sbin/mkdir -p $rbase/$spadir
  71.         fi
  72.     fi
  73. done
  74.  
  75. # Conditionally make the /usr/bin/perl and /usr/bin/perl5 links
  76. # SGI Freeware Perl version
  77.  
  78. for link in perl perl5 ; do
  79.     if test ! -f $rbase/usr/bin/$link ; then
  80.         if test -l $rbase/usr/bin/$link ; then
  81.             /bin/rm -f $rbase/usr/bin/$link
  82.         fi
  83.         if test -w $rbase/usr/bin; then
  84.             /bin/ln -s ../freeware/bin/$link $rbase/usr/bin/$link
  85.         fi
  86.     fi
  87. done
  88.  
  89. # fix perl4 symlink for 6.2 and 6.3 (no perl4 in 6.4+)
  90. # note that perl4 was linked statically, but perl5 will get rld error.
  91.  
  92. if [ -l $rbase/usr/bin/perl4 ] ; then 
  93.     if [ ! -x $rbase/usr/bin/perl4 ] ; then
  94.         /sbin/rm -f $rbase/usr/bin/perl4
  95.     elif $rbase/usr/bin/perl4 -e 'exit 1 if ($] < 5.0);' >/dev/null 2>&1 ; then
  96.         /sbin/rm -f $rbase/usr/bin/perl4
  97.     fi
  98. fi
  99. if [ ! -f $rbase/usr/bin/perl4 -a -x $rbase/usr/sbin/perl ] ; then
  100.     if $rbase/usr/sbin/perl -e 'exit 1 unless ($] < 5.0);' >/dev/null 2>&1 ; then
  101.         /sbin/ln -s ../sbin/perl $rbase/usr/bin/perl4
  102.     fi
  103. fi
  104.  
  105. # return success only if there is a valid perl link
  106. if test -x $rbase/usr/freeware/bin/perl ; then
  107.     exit 0
  108. else
  109.     exit 1
  110. fi
  111.  
  112.